دانشگاه صنعتی شریف دانشکده مهندسی برق گزارش درس ریاضیات رمزنگاري عنوان: رمزگذاري جستجوپذیر متقارن پویا استاد درس: مهندس نگارنده: ز 94 دي ماه 1394 1
5 نماد گذاري و تعریف مسي له 1 6 رمزگذاري جستجوپذیر متقارن پویا [3] 2 7..................... طرح 1 :جستجو و ذخیره به صورت تعاملی 1. 2 8 امنیت اثبات پذیر.............................. 1. 1. 2 9 نتیجه گیري و کارهاي آینده 3 2
چکیده با استفاده از رمزگذاري جستجوپذیر متقارن کاربر می تواند داده هاي خود را به گونه اي رمز کند که قابل جستجو باشند. یکی از کاربردهاي مهم این نوع رمزگذاري در رایانش ابري است که کاربر داده هاي خود را روي یک ابر عمومی که لزوما مورد اعتماد او نیست ذخیره سازي می کند. یک طرح جستجوپذیر با سه ویژگی را می توان عملی دانست : امکان به روزرسانی یا اضافه و پاك کردن فایل ها(پویایی ) زمان جستجوي خطی و امنیت در برابر حمله کلیدواژه منتخب وفقی. طرح هاي بسیاري تا کنون براي رمزگذاري جستجوپذیر متقارن مطرح شده اند که هرکدام یک یا چندي از این ویژگی ها را برآورده می سازند. در این مقاله ابتدا به بررسی طرح هاي موجود و مقایسه عملکرد آن ها می پردازیم سپس یک طرح داراي ویژگی پویایی و امنیت اثبات پذیر در برابر حمله کلیدواژه منتخب وفقی را به تفصیل شرح می دهیم. کلمات کلیدي: ر طرح اراي ه شده در [6] به یک پیچیدگی زمانی ثابت دست یافته است در عین حال از به روز رسانی داده ها پشتیانی نمی کند.به این معنی که براي اضافه یا پاك کردن یک فایل باید تمامی فایل ها از اول اندیس گذاري شوند. طرح [3] [6] براي هر به روزرسانی می بایست تمامی داده ها را تغییر دهیم که بسیار زمان بر و ناکارآمد خواهدبود. -نشت اطلاعات مربوط به الگوي جستجوي 1 کاربر را مورد توجه قرار می دهد. تا سال 2012 این تنها طرح معرفی شده با دو ویژگی بالاست که امنیت آن در برابر حمله کلیدواژه منتخب وفقی 2 اثبات شده است [7]. این طرح در سال هاي بعد مبنایی براي طرح مختلف مانند [8] قرار گرفت. قابل ذکر است که محدودیت عمده این روش بزرگ بودن اندیس رمز شده می باشد. جدول 1 به طور خلاصه مقایسه اي از طرح هاي مختلف رمزنگاري متقارن و قابلیت هاي هر کدام را نشان می دهد: 1 2 3
1: مقایسه طرح هاي مختلف اندازه اندیس زمان جستجو پویایی طرح اندیس ندارد O( f ) - [1] O(Σ w #f w + #W ) O(#f w ) - [6] O(#f.#W ) O(#f) - [6] O(Σ w #f w + #W ) O(#f w ) [7] O(#W.m f ) O(Log#W ) [3] 1 نماد گذاري و تعریف مسي له فرض کنید کاربر می خواهدn فایل D i = (M i, W i ), i = 1, 2,..., n را روي کارگزار ذخیره کند. i M داده اصلی و W i مجموعه اي از کلید واژه ها را نشان می دهد که به داده اصلی موجود در هر فایل افزوده شده است: W i = {w 1, w 2,..., w n } W i را افزونه فایل i ام می نامیم. هر یک از فایل ها با یک شناسه 3 شناخته می شوند به طوري که ID i شناسه مربوط به فایل D i است. فایل ها باید به گونه اي روي کارگزار ذخیره گردند که محرمانگی M i و W i متناظر آن حفظ شود. هدف کاربر جستجوي کلید واژه اي مانند w و یافتن M i اي است که به ازاي آن w W i باشد. در رمز نگاري جستجوپذیر تعریف امنیت عدم اطلاع کارگزار از هیچ یک از افزونه ها به جز افزونه فایل حاوي کلیدواژه مورد نظر است.به بیان دیگر براي حفظ امنیت هیچ اطلاعاتی به جز نتیجه جستجو نباید به کارگزار نشت کند. روشهاي معمول رمزگذاري جستجوپذیر متقارن در چهار مرحله زیر عمل جستجو را انجام می دهند: 1- : یک الگوریتم تولید کلید است که توسط کاربر اجرا می شود.ورودي آن یک پارامتر امنیتیsو خروجی آن کلیدKمی باشد. به طوریکه: K = (k M, k W ) کلید K M براي رمز کردن داده اصلی و کلید K W براي رمز کردن افزونه استفاده می شود. 2- : فایل D با استفاده از کلید Kرمز شده و روي کارگزار ذخیره می شود.این تابع خود از دو زیر تابع زیر تشکیل می شود: E KM کرده و خروجی Kرمز M با استفاده از کلید داده اصلیMرا : - IDرا i پس می دهد. 3 4
- : افزونه w را با استفاده از کلید K W به یک نمایش جستجوپذیر S W تبدیل میکند. 3- : کاربر با استفاده از w و k W دریچه T w را ایجاد می کند. 4- : کارگزار با داشتن S W و دریچه عمل جستجو را انجام می دهد و در صورتی که w W i باشد خروجی 1 را پس می دهد. واضح است که انجام چهار مرحله بالا براي یک عمل جستجو به O(n) زمان احتیاج دارد.چون کارگزار با دریافت یک T W باید الگوریتم را روي تمامی S W هاي ذخیره شده اجرا کند. طرح هاي [1] و [6] برخلاف روش بالا به جاي تبدیل هر افزونه به یک نمایش جستجوپذیر هر کلیدواژه را به یک نمایش جستجو پذیر تبدیل می کنند این باعث می شود براي هر به روزرسانی 4 مجبور باشیم تمامی داده ها را تغییر دهیم که بسیار زمان بر و ناکارآمد خواهدبود. 2 رمزگذاري جستجوپذیر متقارن پویا [3] فرض کنید کاربر به دنبال فایل هایی است که کلید واژه w در آن ها اتفاق افتاده اند.براي این کار مجموعه I W به صورت زیر تشکیل می شود: I W = {ID i w W i } این مجموعه شامل شناسه تمام فایل هایی است که کلیدواژه مورد جستجو در افزونه آن ها یافت شده است.ایده اصلی این طرح تبدیل هر کلید واژه w به یک نمایش جستجوپذیر Sاست W به گونه اي که کاربر بتواند بااستفاده از دریچه T w به فایل هاي حاوي w دست یابد.براي این مقصود نمایش جستجوپذیر هر کلیدواژه w به صورت زیر تشکیل می شود. S W = (f kf (w), m(i w ), R(w)) (1) که در آن F kf یک تابع شبه تصادفی و k f همان کلید خصوصی K W یا بخشی از آن می باشد. m تابع پوشش گذار 5 و R حاوي اطلاعاتی براي برداشتن پوشش I w می باشد. هر بار که کاربر می خواهد کلید واژه اي مانند w را جستجو کند دریچه زیر را براي کارگزار می فرستد : 4 5 T w = (f kf (w), R (w)) (2) 5
کارگزار با داشتن دریچه ابتدا تمامی نمایش هاي جستجوپذیر S W را براي یافتن (w) F kf جستجو میکند.هر جا که انطباقی رخ داد ) w m(i متناظر با استفاده از R(w) و (w) R پوشش آن حذف می شود. سپس کارگزار شناسه مربوط به فایل هایی که در I w اتفاق افتاده اند را براي کاربر می فرستد.به این ترتیب عمل جستجو به پایان می رسد. در این روش براي مخفی کردن الگوي جستجوي کاربر I w را تا زمان انجام جستجو توسط تابع پوشش m پوشیده نگه می داریم.بسته به نوع پوشش استفاده شده این طرح را می توان به دو صورت تعاملی و غیر تعاملی استفاده نمود. طرح اول بار محاسباتی کمتري دارد در عین حال به صورت تعاملی بین کاربر و کارگزار انجام می شود.در عین حال طرح دوم به صورت غیر تعاملی عمل کرده و عمل ذخیره سازي و جستجو را با بکارگیري یک زنجیره چکیده ساز انجام می دهد. 1. 2 طرح 1 :جستجو و ذخیره به صورت تعاملی در این طرح نمایش جستجوپذیر هر کلیدواژه w به صورت زیر است: S W = (f kf (w), I w G(r), E ke (w)) (3) براي دست یابی به این نمایش جستجوپذیر ابتدا توابع و مذکور در بخش 4 محاسبه شده سپس براي انجام مرحله ذخیره سازي افزونه ها الگوریتم زیر به صورت تعاملی بین کاربر و کارگزار اجرا می شود: 1- کاربر مجموعه U w که شامل شناسه افزونه هاي شامل کلیدواژه w است را به صورت زیر تشکیل داده و (w) f kf را به کارگزار ارسال می کند : 2- کارگزار اولین مولفه ي نمایش هاي جستجوپذیر را براي یافتن (w) f kf جستجو می کند و (r) E ke (مولفه سوم نمایش جستجوپذیر متناظر ( را براي کاربر ارسال می کند. 1 E r r = را بدست می آورد k E 3- کاربر با داشتن (r) E ke و رمزگشایی آن به صورت ((r) E) KE.سپس با انتخاب r به صورت تصادفی C را به صورت زیر محاسبه و به کارگزار ارسال می کند: C = (f kf (w), U w G(r) G (r), E ke (r )) (4) 4- نمایش جستجوپذیر به روزرسانی شده به صورت زیر خواهد بود: C = (f kf (w), U w I w G ( r ), E ke (r )) (5) 6
به عبارت دیگر لیست به روز رسانی شده اندیس هاي به دست آمده از جستجو برابر با = (w) I U w I w است. حال نوبت به تولید دریچه توسط کاربر می رسد. به این منظور کاربر با داشتن کلیدخصوصی ) W K W = (K f, K دریچه (w) T w = f kf را تولید کرده و براي کارگزار می فرستد. این دریچه در واقع مجوز جستجو است که توسط کاربر به کارگزار داده می شود.در آخر الگوریتم جستجو طی دو مرحله زیر به صورت تعاملی بین کاربر و کارگزار انجام می شود: 1- کارگزار که دریچه T w را در اختیار دارد اولین مولفه نمایش هاي جستحوپذیر S w را براي یافتن T w بررسی میکند و در صورد وقوع انطباق مولفه سوم نمایش جستجوپذیر متناظر ) 3 S) را براي کاربر ارسال میکند. 1 E را براي کارگزار می فرستد تا کارگزار طبق رابطه زیر I w را حساب می کند: k E -2 کاربر ) 3 (S I w = S 2 G(E 1 K E (S 3 )) (6) به این ترتیب کارگزار با ارسال فایل هایی که شناسه آن ها در I w وجود دارد به کاربر عمل جستجو را به پایان می رساند. این طرح داراي دو محدودیت اساسی است: 1- الگوریتم ذخیره سازي افزونه ها و همچنین الگوریتم جستجو به صورت تعاملی بین کاربر و کارگزار انجام می شوند. 2- الگوریتم ذخیره سازي افزونه ها پنهاي باند زیادي را اشغال میکند به عبارتی چون U w هم اندازه با I w است پهناي باند موردنیاز دوبرابر می شود. 1. 1. 2 امنیت اثبات پذیر به طور کلی امنیت یک سیستم رمزگذاري طی انجام یک بازي بین چالشگر و مهاجم اثبات می شود و با نشان دادن ناچیز بودن احتمال برد مهاجم می توان گفت امنیت سیستم اثبات شده است. در زیر یک نمونه ساده از اثبات امنیت را به اختصار توضیح می دهیم: فرض کنید مهاجم و چالشگر باشند. چالشگر براي به چالش کشیدن مهاجم ابتدا کلیدواژه اي را به صورت تصادفی و با طول λ به صوررت λ K R,0} {1 تولید می کند و مقدار λ را براي مهاجم می فرستد. مهاجم با انتخاب کلید واژه هاي W 0 و W 1 از چالشگر می خواهد که یکی را به انتخاب خود رمز کرده و به مهاجم بازگرداند 7
یعنی : b R {0, 1}, C b = Enc K (W b ) (7) با فرض اینکه مهاجم دریچه T w را در اختیار داشته باشد عمل جستجو را براي کلیدواژه C b انجام داده و حاصل جستجو را تعیین می کند: search(t W0, C b ) = b (8) مهاجم b را براي چالشگر می فرستد و چالشگر در صورتی که b b = باشد مهاجم را برنده اعلام می کند. در امنیت اثبات پذیر هدف نشان دادن ناچیز بودن احتمال برد مهاجم است. 3 نتیجه گیري و کارهاي آینده در این مقاله مروري بر طرح هاي موجود براي رمزگذاري جستجوپذیر متقارن داشتیم و طرح هاي مختلف را از حیث پیچیدگی پویایی و سایر قابلیت ها با هم مقایسه کرده و در نهابت یک طرح نمونه را به تفصیل شرح دادیم. در تحقیقات آینده توجه به نیاز دنیاي واقعی ما را به ارایه طرح هاي عملی تر و برآوردن نیاز هاي دنیاي امروز رمزنگاري نزدیک تر می کند. به عنوان نمونه ارایه طرح هاي جدید براي جستجو در بین ایمیل ها و یا در سیستم هاي و هر سامانه چندکاربره دیگري می تواند مفید واقع شود. همچنین تعمیم روش هاي رمزگذاري جستجوپذیر براي یافتن گروهی از کلیدواژه ها و یا یافتن واژه هاي با تکرار زیاد در اسناد رمزشده زمینه مناسبی براي تحقیقات آینده به نظر می رسد. 8
9